import router from './router'
import { Message } from 'element-ui'
import Cookies from 'js-cookie'
import NProgress from 'nprogress' // 引入进度条
import 'nprogress/nprogress.css' // 进度条样式

// 路由白名单
const whiteList = ['/login']

// 前置路由守卫
router.beforeEach(async (to, from, next) => {
    // 开启进度条
    NProgress.start()

    // 设置页面标题
    document.title = '雅安市智慧气象服务平台'

    const hasToken = Cookies.get('token')

    if (hasToken) {
        if (to.path === '/login') {
            // 已登录且要跳转的页面是登录页
            next({ path: '/' }) // 重定向到首页
            NProgress.done()
        } else {
            // 已登录访问其他页面
            next()
        }
    } else {
        // 未登录
        if (whiteList.includes(to.path)) {
            // 在免登录白名单中，直接进入
            next()
        } else {
            // 其他没有访问权限的页面将被重定向到登录页面
            next(`/login?redirect=${to.path}`)
            Message.error('请先登录')
            NProgress.done()
        }
    }
})

// 后置路由守卫
router.afterEach(() => {
    // 关闭进度条
    NProgress.done()
})
